home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 2 / Gold Medal Software Volume 2 (Gold Medal) (1994).iso / windows / win31 / macsyma.arj / MACSDEMO.EXE / LAPLACE.OUT < prev    next >
Text File  |  1993-09-14  |  4KB  |  62 lines

  1.  
  2. (c1) /*  Demonstration of the Laplace Transform capability in MACSYMA  */
  3.  
  4. laplace(exp(-b*t)*cos(w*t),t,s);
  5. |$label(0,15,Times New Roman,$(d1$))$q(s$in( + )b,$sup(w,2)$in( + )$sup(s,2)$in( + )2$in( )b$in( )s$in( + )$sup(b,2))
  6.  
  7. (c2) /*  Use LAPLACE to solve simultaneous differential equations.
  8.     (See also EXAMPLE(DESOLVE); for a quicker approach.)  */
  9.  
  10. assume(a>0,s>0)$
  11.  
  12. (c3) diff_eq1:3*'diff(f(x),x,2)-2*'diff(g(x),x)=sin(x);
  13. |$label(0,15,Times New Roman,$(d3$))3$in( )$q($sup(d,2),d$sup(x,2))$paren(f$paren(x))$hinge()$in( - )2$in( )$q(d,dx)$paren(g$paren(x))$hinge()$in( = )sin$paren(x)
  14.  
  15. (c4) diff_eq2:a*'diff(g(x),x,2)+'diff(f(x),x)=a*cos(x);
  16. |$label(0,15,Times New Roman,$(d4$))a$in( )$q($sup(d,2),d$sup(x,2))$paren(g$paren(x))$hinge()$in( + )$q(d,dx)$paren(f$paren(x))$hinge()$in( = )a$hinge()$in( )cos$paren(x)
  17.  
  18. (c5) atvalue(g(x),x=0,1)$
  19.  
  20. (c6) atvalue('diff(f(x),x),x=0,0)$
  21.  
  22. (c7) atvalue('diff(g(x),x),x=0,1)$
  23.  
  24. (c8) lap_eq1:laplace(diff_eq1,x,s);
  25. |$label(0,15,Times New Roman,$(d8$))3$in( )$paren($sup(s,2)$in( )laplace$paren(f$paren(x)$ina($, )$hinge()x$ina($, )$hinge()s)$in( - )f$paren(0)$in( )s,$(,$))$hinge()$in( - )2$in( )$paren(s$in( )laplace$paren(g$paren(x)$ina($, )$hinge()x$ina($, )$hinge()s)$in( - )1,$(,$))$hinge()$in( = )$q(1,$sup(s,2)$in( + )1)
  26.  
  27. (c9) lap_eq2:laplace(diff_eq2,x,s);
  28. |$label(0,15,Times New Roman,$(d9$))a$in( )$paren($sup(s,2)$in( )laplace$paren(g$paren(x)$ina($, )$hinge()x$ina($, )$hinge()s)$in( - )s$in( - )1,$(,$))$hinge()$in( + )s$in( )laplace$paren(f$paren(x)$ina($, )$hinge()x$ina($, )$hinge()s)$hinge()$in( - )f$paren(0)$hinge()$in( = )$q(a$in( )s,$sup(s,2)$in( + )1)
  29.  
  30. (c10) linsolve([lap_eq1,lap_eq2],['laplace(f(x),x,s),'laplace(g(x),x,s)]);
  31. |$label(0,15,Times New Roman,$(d10$))$open([)laplace$paren(f$paren(x)$ina($, )$hinge()x$ina($, )$hinge()s)$hinge()$in( = )$q(3$in( )f$paren(0)$in( )a$in( )$sup(s,4)$in( + )$paren(f$paren(0)$in( )$paren(3$in( )a$in( + )2,$(,$))$in( + )2$in( )a,$(,$))$in( )$sup(s,2)$in( + )3$in( )a$in( )s$in( + )2$in( )a$in( + )2$in( )f$paren(0),3$in( )a$in( )$sup(s,5)$in( + )$paren(3$in( )a$in( + )2,$(,$))$in( )$sup(s,3)$in( + )2$in( )s)$ina($, )$hinge()laplace$paren(g$paren(x)$ina($, )$hinge()x$ina($, )$hinge()s)$hinge()$in( = )$q(3$in( )a$in( )$sup(s,4)$in( + )3$in( )a$in( )$sup(s,3)$in( + )$paren(6$in( )a$in( + )2,$(,$))$in( )$sup(s,2)$in( + )3$in( )a$in( )s$in( + )1,3$in( )a$in( )$sup(s,5)$in( + )$paren(3$in( )a$in( + )2,$(,$))$in( )$sup(s,3)$in( + )2$in( )s)$close(])
  32.  
  33. (c11) ilt(%,s,x);
  34. |$label(0,15,Times New Roman,$(d11$))$open([)f$paren(x)$hinge()$in( = )$q($q(27$in( )$sup(a,5$in(/)2)$in( )sin$paren($q($sqrt(6)$in( )x,3$in( )$sqrt(a))),$sqrt(6)$in( )$paren(3$in( )a$in( - )2,$(,$)))$in( - )3$in( )$sup(a,2)$in( )cos$paren($q($sqrt(6)$in( )x,3$in( )$sqrt(a))),3$in( )a)$hinge()$in( - )$q(3$in( )a$in( )sin$paren(x),3$in( )a$in( - )2)$hinge()$in( + )a$hinge()$in( + )f$paren(0)$ina($, )$hinge()g$paren(x)$hinge()$in( = )$q($q(9$in( )$sup(a,3$in(/)2)$in( )sin$paren($q($sqrt(6)$in( )x,3$in( )$sqrt(a))),$sqrt(6))$in( + )$q(27$in( )$sup(a,2)$in( )cos$paren($q($sqrt(6)$in( )x,3$in( )$sqrt(a))),6$in( )a$in( - )4),3$in( )a)$hinge()$in( - )$q($paren(3$in( )a$in( + )1,$(,$))$in( )cos$paren(x),3$in( )a$in( - )2)$hinge()$in( + )$q(1,2)$close(])
  35.  
  36. (c12) /*  User-defined extension to the Laplace Transform capability.
  37.     Begin with an extension to Bessel Functions.
  38.     We define a function that produces the transform of J0(A*X) .  */
  39.  
  40. besseltrans(f,x,s):= block([c],
  41.    if inpart(f,0) # 'j0
  42.       then 'laplace(f,x,s)
  43.       else (c: inpart(f,1),
  44.             c: bothcoef(c,x),
  45.            if second(c) = 0
  46.           then 1/sqrt(s^2+first(c)^2)
  47.           else 'laplace(f,x,s)))$
  48.  
  49. (c13) /* LAPLACE looks at the LAPLACE property of the function
  50.    it is trying to transform, so we place BESSELTRANS there: */
  51.  
  52. put(j0,'besseltrans,'laplace)$
  53.  
  54. (c14) /*  Now test it:  */
  55.  
  56. laplace(j0(2*t)-2*j0(t),t,s);
  57. |$label(0,15,Times New Roman,$(d14$))$q(1,$sqrt($q(4,$sup(s,2))$in( + )1)$in( )s)$hinge()$in( - )$q(2,$sqrt($q(1,$sup(s,2))$in( + )1)$in( )s)
  58.  
  59. (c15) /* Clean Up */
  60. (forget(a>0,s>0),remvalue(diff_eq1,diff_eq2,lap_eq1,lap_eq2),
  61.  remove([f,g],atvalue),remfunction(besseltrans),rem(j0,'laplace))$
  62.